Масиви
Масив – це набір елементів одного типу з одним іменем. Доступ до елементів масиву відбуважться через порядковий номер.
Оголошення одновимірних масивів.
Для Сі, одновимірним масивом (масив англійською - array) є список змінних, які є однакового типу, та достумапні через спільне ім'я. Одна змінна у такому списку, називається елемент масиву. Масиви формують зручний спосіб обробки груп поєднаних даних.
Загальна форма одновимірного масиву наступна:
тип ім'я_змінної[розмір];
int arr[10]; //оголошено масив з 10 елементів. Індекси елементів від 0 до 9.
int mas[] ={ 8 , 2, 6, 2, 3, 4, 5 }; оголошено масив розмір якого задано кількістю елементів, масив ініціалізовано числами: 8 , 2, 6, 2, 3, 4, 5
int B[20] = {0}; // оголошено масив з 20 елементі, всі значення яких = 0;
int array[10] = {1};
/*
огодошено масив з 10 елементів, значення комірки з
номером 0 дорівнює 1.
Про решту комірок нічого невідомо.
*/Звертання до якогось елемента масиву здійснюється через індекс (тобто порядковий номер) цього елемента у масиві. В мові С++, всі масиви починаються з нуля. Це означає, що індеком першого елемента масиву є 0, а індекс останнього елемента масиву є розмір масиву - 1. Для звертання до якогось елемента масиву вкажіть ім'я масиву, за ним індекс потрібного вам елемента у квадратних дужках. Наступний фрагмент звертається до другого елемента масиву myarray: myarray[1]
Наступне твердження присвоює першому елементові масиву myarray значення 100:
myarray[0] = {100}; Мова Сі зберігає одновимірні масиви у одному суміжному (не розірваному) місті пам'яті, де адреса масиву є адресою першого елемента цього масиву.
Vector
Vector – динамічний масив.
Приклад використання вектора значення
vector <int> v1; //створити пустий вектор vector <int> v2(20); //створити вектор з 20 елементів vector <int> v2(20,5); //створити вектор з 20 елементів, кожен з яких дорывнюэ 5 int n = v2.size(); //визначення розміру вектора v2.push_back(val); //добавити до кінця вектора значення val v2.ersse(v2.begin()+3); //Видалення елементу з номером 3 v2.ersse(v2.begin()+3, v2.begin()+5); //Видалення алементів від 3 по 5-й. v2.insert(pos, val); //Вставлення в pos значення val v.resize(new_size); // змінити розмір вектора на new_size
Приклад програм
Введення виведення масиву
#include <iostream>
using namespace std;
int main()
{
int a[100]; //Оголошення масиву
int n;
cin>>n;
for(int i=0;i<n;i++) // введення масиву
cin>>a[i];
for(int i=0;i<n;i++) // виведення масиву
cout<<a[i]<<endl;
return 0;
}Знаходження найбільшого елемента масиву
...
int max_el = a[0];
for(int i=0;i<n;i++)
{
if(a[i] > max_el) max_el = a[i] ;
}
...Введення вектора
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> v; //Оголошення вектора
int n;
cin>>n;
for(int i=0;i<n;i++) // введення вектора
{
cin>>t;
v.push_back(t)
}
for(int i=0;i<v.size() ;i++) // виведення вектора
cout<<v[i]<<endl;
return 0;
}// Обхід вектора через ітератори:
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
int x = *it;
...
}
// З використанням типу auto, 11 стандарт і вище
for (auto i : v)
cout<<i<<“ “;
Двохвимірні масиви
int mas[100][100]; // створення двохвимірного масива
int b[100][100]={0}; // створення двохвимірного масива та онулення його
int b[3][3]={{1,2,3},{4,5,6},{5,6,7}}; // створення двохвимірного масива та ініціалізація йогоВведення двохвимірного масива
int m,n;
cin>>n>>m;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>mas[i][j];
}
}Ввиедення двохвимірного масива
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<mas[i][j]<<" ";
}
cout<<endl;
}